package com.sylli.oeuf.server.game.logic.invocation;

public class InvocationEvent {
	
	public final static InvocationEvent 
		STD_IE_ON_ACTIVE = new InvocationEvent("onActive"),
		STD_IE_ON_TICK = new InvocationEvent("onTick"),
		STD_IE_ON_START = new InvocationEvent("onStart"),
		STD_IE_ON_ATTACK = new InvocationEvent("onAttackTurn"),	// will be binded with user defined condition .. not skill's
		STD_IE_ON_DEFEND = new InvocationEvent("onDefendTurn"),
		STD_IE_ON_MODIFY_HP = new InvocationEvent("onModifyHp"),
		STD_IE_ON_MODIFY_MP = new InvocationEvent("onModifyMp"),
		STD_IE_ON_MODIFY_STAT = new InvocationEvent("onModifyStat"),
		STD_IE_ON_ADD_DEBUFF = new InvocationEvent("onAddDeBuff"),
		STD_IE_ON_ADD_BUFF = new InvocationEvent("onAddBuff"),
		STD_IE_ON_DEAL_DAMAGE = new InvocationEvent("onDealDamage"),
		STD_IE_ON_CAST_HEAL = new InvocationEvent("onSuccessHeal"),
		STD_IE_ON_REMOVE_BUFF = new InvocationEvent("onRemoveBuff"),
		STD_IE_ON_REMOVE_DEBUFF = new InvocationEvent("onRemoveDeBuff"),
		STD_IE_ON_USE_MANA = new InvocationEvent("onUseMana"),
		STD_IE_ON_RECIEVE_HEAL = new InvocationEvent("onRecieveHeal");
	
	private String eventName;
	
	@Override
	public boolean equals(Object obj) {
		if (obj instanceof InvocationEvent) {
			InvocationEvent ie = (InvocationEvent) obj;
			return eventName.equals(ie.eventName);
		}
		return false;
	}

	@Override
	public String toString() {
		return "InvocationEvent: eventName=" + eventName;
	}

	public InvocationEvent(String event) {
		eventName = event;
	}

	public String getEventName() {
		return eventName;
	}

	public void setEventName(String eventName) {
		this.eventName = eventName;
	}
	
}
